
// 服务器日志信息
const path = require('path');
const fs = require('fs').promises;
const pool = require('../config/mysql_db');
 
class server_log{

  // 日志信息写入json文件
  static async Write_server_log_to_JSON(filename, server_logData) {
    try {
        const dir = path.dirname(filename);
        await fs.mkdir(dir, { recursive: true }); // recursive: true 确保创建所有不存在的父目
        // 将 JavaScript 对象转换为格式化的 JSON 字符串
        const jsonString = JSON.stringify(server_logData, null, 2);
        
        // 将字符串写入文件
        await fs.writeFile(filename, jsonString);
        
        console.log('日志信息JSON 数据已成功写入文件！');
    } catch (error) {
        console.error('日志信息JSON 数据写入文件时出错：', error);
    }
  }
  // Write_server_log_to_JSON('data.json', server_logData);   调用
  /* 
    const server_logData = {
        user_account: "",
        user_name: '',
        date: " ",
        sql_log: "",
        sqlMessage_log:'',
        userupdata:''
    };
 */


  // 日志信息写入数据库
  static async Write_server_log_to_DB(server_logData) {
      try {
          // 确保这里的列数与VALUES中的问号数量一致
          let sql = 'INSERT INTO server_log (user_account, user_name, date, sql_log, sqlMessage_log, userupdata) VALUES (?, ?, ?, ?, ?, ?)';
          
          const [result] = await pool.query(sql, [
              server_logData.user_account,
              server_logData.user_name,
              server_logData.date,
              server_logData.sql_log,
              server_logData.sqlMessage_log, // 注意字段名一致性
              server_logData.userupdata      // 注意字段名一致性
          ]);
          
          console.log('日志信息已成功写入数据库！');
          return result;
      } catch (error) {
          console.error('日志信息写入数据库时出错：', error);
          throw error;
      }
  }
  

  

}
module.exports = server_log;



